<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 新建一个数组，
      // 利用sort()排序，在循环数组的每个元素 然后把后面的元素和前面的比较  如果不相同就把前面的元素放入新数组中

      var arr = [1, 1, "true", "true", true, true, 15, 15, false, false, undefined, undefined, null, null, NaN, NaN, "NaN", 0, 0, "a", "a", {}, {}];

      var newArr = [];
      var arr = arr.sort();
      for (var i = 1; i < arr.length; i++) {
        if (arr[i - 1] !== arr[i]) {
          newArr.push(arr[i - 1]);
        }
      }

      console.log(newArr);
      // 0: 0
      // 1: 1
      // 2: 15
      // 3: NaN
      // 4: NaN
      // 5: "NaN"
      // 6: {}
      // 7: {}
      // 8: "a"
      // 9: false
      // 10: null
      // 11: "true"
      // 12: true

      // 不能去重 NaN 和 { }  还是有点缺陷
    </script>
  </body>
</html>
